// utils/callPhone.js
/**
 * 📞 通用拨号工具（全平台兼容）
 * -------------------------------------------------------
 * | 平台类型           | 逻辑         | 实现方式                        |
 * | ------------------ | ------------ | ------------------------------- |
 * | App / 小程序       | 直接拨号      | uni.makePhoneCall()             |
 * | 手机 H5 (微信/浏览器) | 唤起拨号界面   | window.location.href = 'tel:'   |
 * | PC H5 (桌面端)     | 复制号码到剪贴板 | uni.setClipboardData()          |
 * -------------------------------------------------------
 * 自动识别平台并执行最合适的行为
 */

export const callPhone = (phoneNumber) => {
    if (!phoneNumber) {
        uni.showToast({ title: '手机号无效', icon: 'none' })
        return
    }

    // 🚀 1. App、小程序平台：直接拨号
    // #ifdef APP-PLUS || MP-WEIXIN || MP-ALIPAY || MP-BAIDU || MP-TOUTIAO
    uni.makePhoneCall({
        phoneNumber,
        success: () => {
            console.log('📲 拨号成功, App、小程序平台:直接拨号phoneNumber:', phoneNumber);
        },
        fail: () => {
            uni.showToast({ title: '拨打失败，请重试', icon: 'none' })
            console.log('📲 拨打失败，请重试,App、小程序平台:直接拨号phoneNumber:', phoneNumber);
        }
    })
    // #endif

    // 🌐 2. H5 平台（移动端或桌面端）
    // #ifdef H5
    const isMobile = /Android|iPhone|iPad|iPod|iOS/i.test(navigator.userAgent)

    if (isMobile) {
        // ✅ 手机端 H5：唤起系统拨号界面
        try {
            window.location.href = `tel:${phoneNumber}`
            console.log('手机端 H5：唤起系统拨号界面phoneNumber:', phoneNumber);
        } catch (e) {
            copyPhoneNumber(phoneNumber)
        }
    } else {
        // 💻 PC端 H5：仅复制号码
        copyPhoneNumber(phoneNumber)
        console.log('PC端 H5：仅复制号码phoneNumber:', phoneNumber);
    }
    // #endif
}

/**
 * ✂️ 复制号码到剪贴板并提示
 * @param {string} phoneNumber
 */
function copyPhoneNumber(phoneNumber) {
    uni.setClipboardData({
        data: phoneNumber,
        success: () => {
            uni.showToast({ title: '已复制号码，请手动拨打', icon: 'none' })
        }
    })
}

// 使用方法：
// import { callPhone } from '@/utils/callPhone.js'
// callPhone('17558080342')